package 斗地主游戏1控制台版;



import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class Poker extends JLabel implements MouseListener {

	//游戏的主界面
	GameJFrame gameJFrame;
	//牌的名字
	String name;
	//牌显示正面还是反面
	boolean up;
	//是否可点击
	boolean canClick = false;
	//当前状态，是否已经被点击
	boolean clicked = false;

	public Poker(GameJFrame m, String name, boolean up) {
		this.gameJFrame = m;
		this.name = name;
		this.up = up;
		//判断当前的牌是显示正面还是背面
		if (this.up){
			this.turnFront();
		}else {
			this.turnRear();
		}
		//设置牌的宽高大小
		this.setSize(71, 96);
		//把牌显示出来
		this.setVisible(true);
		//给每一张牌添加鼠标监听
		this.addMouseListener(this);
	}


	//显示正面
	public void turnFront(){
		//给牌设置正面
		this.setIcon(new ImageIcon("E:\\java代码\\xiangmu\\day24\\image\\poker\\"+name+".png"));
		//修改成员变量
		this.up=true;
	}


	//显示反面
	public void turnRear(){
		//给牌设置正面
		this.setIcon(new ImageIcon("E:\\java代码\\xiangmu\\day24\\image\\poker\\rear.png"));
		//修改成员变量
		this.up=false;
	}







	@Override
	public void mouseClicked(MouseEvent e) {
		//点击
		//判断当前的牌是否可以被点击
		if (canClick){
			int step=0;//表示拍的位移像素
			//当牌被点击之后，要么升起要么降落
			if (clicked){
				//表示当前的牌已经被点击了，要降落（y增加20个像素）
				step=20;
			}
			else {
				//表示当前的牌还没被点击(y减小20个像素)
				step=-20;
			}
			//修改一下clicked的变量记录的值
			clicked=!clicked;
			//修改牌的位置
			Point from = this.getLocation();
			//创建一个Point的对象，表示牌的结束位置
			Point to=new Point(from.x,from.y+step);
			//把最新的位置设置给牌
			this.setLocation(to);


		}
	}

	@Override
	public void mousePressed(MouseEvent e) {

	}

	@Override
	public void mouseReleased(MouseEvent e) {

	}

	@Override
	public void mouseEntered(MouseEvent e) {

	}

	@Override
	public void mouseExited(MouseEvent e) {

	}

	/**
	 * 获取
	 * @return gameJFrame
	 */
	public GameJFrame getGameJFrame() {
		return gameJFrame;
	}

	/**
	 * 设置
	 * @param gameJFrame
	 */
	public void setGameJFrame(GameJFrame gameJFrame) {
		this.gameJFrame = gameJFrame;
	}

	/**
	 * 获取
	 * @return name
	 */
	public String getName() {
		return name;
	}

	/**
	 * 设置
	 * @param name
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 获取
	 * @return up
	 */
	public boolean isUp() {
		return up;
	}

	/**
	 * 设置
	 * @param up
	 */
	public void setUp(boolean up) {
		this.up = up;
	}

	/**
	 * 获取
	 * @return canClick
	 */
	public boolean isCanClick() {
		return canClick;
	}

	/**
	 * 设置
	 * @param canClick
	 */
	public void setCanClick(boolean canClick) {
		this.canClick = canClick;
	}

	/**
	 * 获取
	 * @return clicked
	 */
	public boolean isClicked() {
		return clicked;
	}

	/**
	 * 设置
	 * @param clicked
	 */
	public void setClicked(boolean clicked) {
		this.clicked = clicked;
	}

	public String toString() {
		return "Poker{gameJFrame = " + gameJFrame + ", name = " + name + ", up = " + up + ", canClick = " + canClick + ", clicked = " + clicked + "}";
	}
}
